json 模块
@(python3)
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。python3 可以使用 json 模块来对 JSON 数据进行编解码。
- json.loads() 将 json 字符串解码为 python 对象
json.dumps
将 python 对象编码转化为 json 字符串
import json
data = {'Citizen_Wang':1, 'Always fall in love':2, 'with neighbours.':3}
json_str = json.dumps(data)
print('Python 原始数据是:', data)
print('json 对象:',json_str)
print(type(data))
print(type(json_str))
输出结果:
Python 原始数据是: {'Citizen_Wang': 1, 'Always fall in love': 2, 'with neighbours.': 3}
json 对象: {"Citizen_Wang": 1, "Always fall in love": 2, "with neighbours.": 3}
<class 'dict'>
<class 'str'>
转化后的 json_str 是一个字符串类型,可以使用 enumerate 来查看一下 json_str 字符串的索引值和对应值。
for i,v in enumerate(json_str):
print(i, v)
json.dumps 可以把 python 相应的类型,转化为 json 的一些类型,具体可以参考上面的表格。
json.loads
将 json 格式转化为 python 格式
import json
data = {'Citizen_Wang':1, 'Always fall in love':2, 'with neighbours.':3}
json_str = json.dumps(data)
print('Python 原始数据是:', data)
print('json 对象:',json_str)
print(type(data))
print(type(json_str))
date2 = json.loads(json_str)
print(date2)
print(type(date2))
输出结果:
{'Citizen_Wang': 1, 'Always fall in love': 2, 'with neighbours.': 3}
<class 'dict'>
json.dump
dump 和 dumps 的功能一样,将 dict 转化为 str 的格式,然后存入文件中。
import json
data = {'Citizen_Wang':1, 'Always fall in love':2, 'with neighbours.':3}
json_str = json.dumps(data)
file = open('2.txt', 'w')
print(type(file))
json.dump(data, file)
json.dump(json_str, file)
file.close()
json.load
load 和 loads 的功能一样,从文件中读取 str 格式并将其转化为字符串。
file = open('2.txt', 'r')
print(json.load(file))
load 在读取的时候,只需要文件对象一个参数即可。而 dump 在使用的时候,需要 python 对象作为第一个传入参数,文件对象作为第二个传入参数。
小结:
dump 或 dumps, 把其他对象或者格式,转化为 json 格式,dumps 用来处理字符串,dump 用来处理文件。
load 或 loads ,把 json 格式转化成其他格式,loads 用来处理字符串,load 用来处理文件。